#include <iostream>
using std::cout;
using std::endl;
//引用是定义的一个变量的别名
void test(){
    int number = 20;
    // &表示的是引用符号不是取地址符号
    // 怎么区分，什么时候是引用，什么时候是取地址
    // 引用：前面有数据类型
    // 取地址：取地址时，前面一般不会有数据类型
    int & ref = number;//相当于外号
    cout << number << endl;
    cout << ref << endl;
}
void test2(){
    int number = 20;
    &number;
}

//白月光 从一而终
void test3(){
    //引用必须得绑定到一个变量中才可以
    //int & ref;error
    //引用一旦绑定，无法进行变更操作
    int number = 10;
    int number2 = 20;
    int & ref = number;
    cout << &number << endl;
    cout << &ref << endl;
    cout << number << endl;
    cout << ref << endl;
    ref = 30;
    cout << "进行赋值操作" << endl;
    cout << &number << endl;
    cout << &ref << endl;
    cout << number << endl;
    cout << ref << endl;
    cout << "验证是否能够接触绑定，重新绑定" << endl;
    //这一步操作并不是变更绑定关系，而是将number2的值
    //赋值给了ref绑定的值
    ref = number2;
    cout << &number << endl;
    cout << &ref << endl;
    cout << number << endl;
    cout << ref << endl;
}

void test4(){
    //比较sizeof得到的大小
    int a = 10;
    int *p = &a;
    int & ref = a;
    cout << sizeof(ref) << endl;//4 字节
    cout << sizeof(p) << endl;// 8 字节
}

int main()
{
    test4();
    return 0;
}

